package cn.shengchao.examstar.ai.application.command;

import lombok.Builder;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * 更新学习进度命令
 * 封装更新学习进度所需的参数
 */
@Data
@Builder
public class UpdateStudyProgressCommand {
    
    /**
     * 学习计划ID
     */
    @NotBlank(message = "学习计划ID不能为空")
    private String studyPlanId;
    
    /**
     * 用户ID
     */
    @NotBlank(message = "用户ID不能为空")
    private String userId;
    
    /**
     * 新的掌握程度代码
     */
    @NotBlank(message = "掌握程度不能为空")
    private String newDegreeOfMasteryCode;
    
    /**
     * 创建静态工厂方法
     */
    public static UpdateStudyProgressCommand of(String studyPlanId, String userId, String newDegreeOfMasteryCode) {
        return UpdateStudyProgressCommand.builder()
            .studyPlanId(studyPlanId)
            .userId(userId)
            .newDegreeOfMasteryCode(newDegreeOfMasteryCode)
            .build();
    }
}